home *** CD-ROM | disk | FTP | other *** search
- /*
- * blob.h
- *
- * Copyright (C) 1990, 1991, Mark Polipec, Craig E. Kolb
- * All rights reserved.
- *
- * This software may be freely copied, modified, and redistributed
- * provided that this copyright notice is preserved on all copies.
- *
- * You may not distribute this software, in whole or in part, as part of
- * any commercial product without the express consent of the authors.
- *
- * There is no warranty or other guarantee of fitness of this software
- * for any purpose. It is provided solely "as is".
- *
- * $Id: blob.h,v 4.0 91/07/17 14:36:12 kolb Exp Locker: kolb $
- *
- * $Log: blob.h,v $
- * Revision 4.0 91/07/17 14:36:12 kolb
- * Initial version.
- *
- */
- #ifndef BLOB_H
- #define BLOB_H
-
- #define GeomBlobCreate(t,m,n) GeomCreate((GeomRef)BlobCreate(t,m,n), BlobMethods())
-
- #define R_START 1
- #define R_END 0
-
- /*
- * Blob
- */
- typedef struct {
- Float rs; /* radius */
- Float c4; /* coeefficient */
- Float c2; /* coeefficient */
- Float c0; /* coeefficient */
- Float x; /* x position */
- Float y; /* y position */
- Float z; /* z position */
- } MetaVector;
-
- typedef struct {
- int type,pnt;
- Float bound;
- Float c[5];
- } MetaInt;
-
- typedef struct {
- Float T; /* Threshold */
- int num; /* number of points */
- MetaVector *list; /* list of points */
- MetaInt *ilist, **iarr;
-
- } Blob;
-
- typedef struct MetaList {
- MetaVector mvec;
- struct MetaList *next;
- } MetaList;
-
- extern int BlobIntersect(), BlobNormal();
- extern void BlobBounds(), BlobStats();
- extern Blob *BlobCreate();
- extern char *BlobName();
- extern Methods *BlobMethods();
-
- #endif /* BLOB_H */
-